package com.demo.chapter10optional;

import java.util.Optional;

import com.demo.domain.Car;

public class GetOptional {
	
	public static void demo(Optional<Car> carOpt){
		//如果存在返回变量值，不存在则抛NoSuchElementExeption
		Car car = carOpt.get();
		//如果存在返回变量值，不存在则允许你提供一个默认值
		Car car2 = carOpt.orElse(new Car());
		//orElse的延迟调用版，Supplier方法只有在Optional不含值的时候才执行
		Car car3 = carOpt.orElseGet(Car::new);
		try {
			//如果存在返回变量值，不存在则生成指定异常
			Car car4 = carOpt.orElseThrow(Exception::new);
		} catch (Exception e) {
			e.printStackTrace();
		}
		//存在返回true，不存在返回false
		carOpt.isPresent();
		//如果存在值，则执行一个方法，不存在则不进行任何操作
		carOpt.ifPresent(System.out::print);
	}

}
